var prefix = "/jzweb/fuzhouDraw";
let isDrawing = null; // 标记是否正在进行抽签

let falg = false;
let timerId
let types = null

$(function() {
    load();
});


function load() {
    $('#exampleTable')
        .bootstrapTable(
            {
                method : 'get', // 服务器数据的请求方式 get or post
                url :  prefix + '/trackSchoolList', // 服务器数据的加载地址
                iconSize : 'outline',
                toolbar : '#exampleToolbar',
                theadClasses: "thead-dark",
                striped : true, // 设置为true会有隔行变色效果
                dataType : "json", // 服务器返回的数据类型
                singleSelect : false, // 设置为true将禁止多选
                showColumns : false, // 是否显示内容下拉框（选择显示的列）
                queryParamsType : "",
                // //设置为limit则会发送符合RESTFull格式的参数
                queryParams : function(params) {
                    return {
                        //说明：传入后台的参数包括offset开始索引，limit步长，sort排序列，order：desc或者,以及所有列的键值对
                        pageNumber : params.pageNumber,
                        pageSize : params.pageSize,
                    };
                },
                // 返回false将会终止请求
                responseHandler : function(res){
                    if(res.code !== '0') {
                        layer.msg(res.msg);
                        return false
                    }
                    isDrawing = res.data.hasDraw
                    return {
                        "rows": res.data.trackDrawDOList //数据
                    };
                },
                columns : [
                    {
                        align: "center",
                        field : 'unitName',
                        title : '参赛院校',
                    },
                    {
                        field: 'recordNumber',
                        title: '检录号',
                        align: "center",
                        width: '700px',
                        class : 'placeNum',
                        formatter : function(value, row, index) {
                            if(isDrawing) {
                                return  value
                            }
                            return '-'
                        }
                    },

                ]
            });
}

function reLoad() {
    $('#exampleTable').bootstrapTable('refresh');
}

function add() {
    layer.open({
        type : 2,
        title : '增加',
        maxmin : true,
        shadeClose : false, // 点击遮罩关闭层
        area : [ '800px', '520px' ],
        content : prefix + '/add' // iframe的url
    });
}

function edit(id) {
    layer.open({
        type : 2,
        title : '编辑',
        maxmin : true,
        shadeClose : false, // 点击遮罩关闭层
        area : [ '800px', '520px' ],
        content : prefix + '/edit/' + id // iframe的url
    });
}


// 抽签
function trackDrawCreate() {
    return  new Promise((resolve, reject) => {
        try {
            $.ajax({
                type : "get",
                url : prefix +"/schoolDraw",
                async : false,
                success : function(res) {
                    if (res.code === '0') {
                        resolve(res)
                        $('#exampleTable').bootstrapTable('load',res.data)
                    } else {
                        reject(res)
                        // parent.layer.msg(res.msg)
                    }

                }
            });
        }catch (e) {
            reject(e)
        }

    })

}


// 开始抽签
async function startDrawButton  () {

    // B随机抽签

        let index = layer.confirm('确认开始抽签？', {
            btn: ['确定', '取消']
        }, function () {
            if(falg) {
                return layer.msg('抽签中')
            }
            timerId = setInterval(updataNumber, 100);
            types = 1
            isDrawing = true
            falg = true
            trackDrawCreate()
            layer.close(index);
            // // 点击停止按钮结束抽签
        })

}

function downExcelModelFile() {
    layer.confirm('您确定要导出吗？', {
        btn1:function(index){
            if(!isDrawing) {
                layer.msg('请先完成抽签')
                layer.close(index);
                return
            }
            try {
                window.location.href = prefix + "/downloadImportTemplateSchool";
                layer.close(index)
            }catch (e) {
                layer.msg('导出失败')
            }

        }
    });

}

 const updataNumber = ()=> {
    let rows = $('#exampleTable').bootstrapTable('getData'); // 获取表格数据

    if (rows.length === 0)  return layer.msg('暂无选手信息')

    isDrawing = true
    falg = true
    let tableRows = $('#exampleTable tbody tr');
    tableRows.each(function(index, row) {

        // 检录号
        let randomNumber = getRandomNumber(1, rows.length);
        $(row).find('.placeNum').text(randomNumber);


    });
}

// 生成指定范围的随机数
function getRandomNumber(min, max) {
    return Math.floor(Math.random() * (max - min + 1)) + min;
}

// 随机选择一个字符串
function getRandomStringFromArray(arr) {
    let randomIndex = getRandomNumber(0, arr.length - 1);
    return arr[randomIndex];
}

// 停止抽签
function stopDrawButton() {
    let index = layer.confirm('确认停止抽签？', {
        btn: ['确定', '取消']
    }, function () {
        if(isDrawing) {
            if(falg) {
                clearInterval(timerId);
                reLoad()
                layer.msg('抽签完毕')
            }else {
                layer.msg('抽签已完成')
            }
        }
        falg = false
        layer.close(index);
    })
}
